//1.- weakMap了解过吗?
//类型了解
//WeakMap）是 ECMAScript 6 新增 的 一种 “弱映射” 集合类型，它这门语言带来了增强的键/值对存储机制

//WeakMap 中的“weak”（弱），描述的是 JavaScript 垃圾回收程序对待“弱映射”中键的方式；
//它的键被弱保持，也就是说，当其键所指对象没有其他地方引用的时候，它会被 GC ( Garbage Collection 垃圾回收) 回收掉

//基本使用
//WeakMap 的键必须是Object类型或继承Object的类型（尝试使用非对象设置键会抛出TypeError），值可以是任意类

//************************************************************************ */

//2.- 如何理解 函数是JavaScript 的一等公民？
//数据类型与函数是很多高级语言中最重要的两个概念，前者用来存储数据，后者用来存储代码。
//JavaScript 中的函数相对于数据类型而言更加复杂，它可以有属性，也可以被赋值给一个变量，
//还可以作为参数被传递......正是这些强大特性让它成了 JavaScript 的“一等公民”。

/*************************************************************************** */

//3.- 什么是回调函数，什么是回调地狱？
//什么是回调函数：
//当一个函数作为参数传入另一个函数中，并且它不会立即执行，只有当满足一定条件后该函数才可以执行，这种函数就称为回调函数。

//回调地狱
//回调地狱：在回调函数中再嵌套回调函数的情况称为回调地狱(是实现代码顺序执行的一种操作方式)
//(1)代码的可读性差、可维护性差
//(2)代码的扩展性差

/**************************************************************************** */

//4.
//async/await是一种建立在Promise之上的编写异步或阻塞代码的新方法，被普遍认为是js一步操作的最终且最优雅的解决方案。相对于Promise和回调，它的可读性和简洁度都更高。一直.then()也不好看。
//所以从语义上就很好理解 async用于声明一个function是异步的，而await用于等待一个异步方法执行完成。一个函数如果加上async，那么该函数返回的是一个Promise

/********************************************************************************************************* */
